Time numpys fft vs fftw (linked through pyfftw).
In [2]:
%run ../common.ipynb
In [3]:
image = imread('../MP.tiff')
In [4]:
fft2?
In [7]:
%time numpy_F = fft2(image)
In [6]:
import pyfftw
In [18]:
pyfftw.interfaces.numpy_fft.fft2?
In [19]:
%time fftw_F = pyfftw.interfaces.numpy_fft.fft2(image)
In [32]:
numpy.array_equal(numpy_F, fftw_F)
Out[32]:
In [22]:
numpy.allclose(numpy_F, fftw_F)
Out[22]:
In [26]:
imshow(log(abs(fftshift(numpy_F))))
Out[26]:
In [27]:
imshow(log(abs(fftshift(fftw_F))))
Out[27]:
In [33]:
# enable cache - http://hgomersall.github.io/pyFFTW/sphinx/tutorial.html#caveat
pyfftw.interfaces.cache.enable()
In [35]:
# now in cache
%time fftw_F = pyfftw.interfaces.numpy_fft.fft2(image)
In [36]:
pyfftw.interfaces.cache.disable()
In [37]:
%time fftw_F = pyfftw.interfaces.numpy_fft.fft2(image)
In [38]:
pyfftw.interfaces.cache.enable()
In [50]:
%time F = pyfftw.interfaces.numpy_fft.fft2(pyfftw.n_byte_align(imread('../MP.tiff'), 16, dtype='uint8'))
In [44]:
F.shape
Out[44]:
In [45]:
pyfftw.n_byte_align_empty?
In [46]:
pyfftw.n_byte_align?